package person.bluext.singlegateway.frame.function;


import person.bluext.singlegateway.frame.model.FuncInfo;

import java.util.HashMap;
import java.util.Map;

/**
 * Description : Abstract function store
 *
 * @author : bluext
 */
public abstract class AbstractFuncStore {

    protected Map<String, FuncInfo> registerMap = new HashMap<>();

    /**
     * 注册接口服务
     *
     * @param funcCode  接口代码
     * @param funcClass 方法所在类
     * @param funcName  方法名
     * @param funcDesc  方法描述
     */
    protected void register(String funcDesc, String funcClass, String funcName, String funcCode) {
        registerMap.put(funcCode, new FuncInfo(funcClass, funcName, funcDesc));
    }

    /**
     * 根据funcCode查找接口信息
     *
     * @param funcCode 接口代码
     * @return 接口信息
     */
    public FuncInfo getFuncInfoByFuncCode(String funcCode) {
        return this.registerMap.get(funcCode);
    }
}
